package neww;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.Method;

public class BaseServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //我怎么区分前端 要的是哪个功能呢？
        //通过传递的参数区分
        // 设置一个参数叫做method  根据method值不同调用不同的方法
        // 我们呢 将方法名 作为参数值 进行对应 好记。
        //获取提交的请求参数 method值 因为值就是方法名字
        try {
            String method = request.getParameter("method");
            //写判断
            //method就是 方法的名字
            //学习过反射，反射的情况下能不能 调用方法
            //已知方法名和方法参数的情况下可不可以反射调用方法
            //字节码文件
            Class clazz = this.getClass();
            //反射方法
            //找方法  通过方法名和参数类型 找方法
            Method function = clazz.getMethod(method, HttpServletRequest.class, HttpServletResponse.class);
            //反射执行方法
            function.invoke(this,request,response);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}
